package com.example.student.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

import java.util.List;
import java.util.Map;

/**
 * @描述: Json工具类
 * @创建人: guoyanlu
 * @创建时间： 2016/12/28 14:58
 */
public class FastJsonUtils {

    /**
     * @param object  需要转化成Json的串
     * @return String
     * @描述 Object转化为JSON字符串
     * @创建人 guoyanlu
     * @创建时间 2016/12/29 12:24
     */
    public static String objectToJson(Object object) {
        String json = JSON.toJSONString(object);
        return json;
    }


    /**
     * @param json  Json字符串
     * @return Object
     * @描述 Object转化为JSON字符串
     * @创建人 guoyanlu
     * @创建时间 2016/12/29 12:24
     */
    public static Object jsonToObject(String json) {
        Object object = JSON.parseObject(json, new TypeReference<Map<String, String>>() {
        });
        return object;
    }


    /**
     * @param json  Json字符串
     * @return List<Map<String, Object>>
     * @描述 JSON转化为List<Map>实例
     * @创建人 guoyanlu
     * @创建时间 2016/12/29 12:24
     */
    public static List<Map<String, Object>> jsonToListMap(String json) {
        List<Map<String, Object>> object = JSON.parseObject(json, new TypeReference<List<Map<String, Object>>>() {
        });
        return object;
    }


    /**
     * @param json  Json字符串
     * @param clazz 指定的转换类型
     * @return List<Map<String, Object>>
     * @描述 JSON转化为List<T>实例
     * @创建人 guoyanlu
     * @创建时间 2016/12/29 12:24
     */
    public static <T> List<T> jsonToList(String json, Class<T> clazz) {
        return JSON.parseArray(json, clazz);
    }

    /**
     *
     */
    /**
     * @param json  Json字符串
     * @param clazz 指定的转换类型
     * @return T
     * @描述 JSON转化为指定类型
     * @创建人 guoyanlu
     * @创建时间 2016/12/29 12:24
     */
    public static <T> T jsonToClass(String json, Class<T> clazz) {
        return JSON.parseObject(json, clazz);
    }

    /**
     * @param json  Json字符串
     * @return T
     * @描述 JSON转化为Map实例
     * @创建人 guoyanlu
     * @创建时间 2016/12/29 12:24
     */
    public static Map<String, Object> jsonToMap(String json) {
        Map<String, Object> object = JSON.parseObject(json, new TypeReference<Map<String, Object>>() {
        });
        return object;
    }


}
